<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>IDA SDK: func_tail_iterator_t Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">IDA SDK
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="files.html"><span>Header&#160;Files</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classfunc__tail__iterator__t-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">func_tail_iterator_t Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Class to enumerate all function tails sorted by addresses. </p>
<p>Enumeration is started with main(), first(), or last(). If first() is used, the function entry chunk will be excluded from the enumeration. Otherwise it will be included in the enumeration (for main() and last()). The loop may continue until the next() or prev() function returns false. These functions return false when the enumeration is over. The tail chunks are always sorted by their addresses.</p>
<p>Sample code: </p><div class="fragment"><div class="line"><a class="code" href="classfunc__tail__iterator__t.html">func_tail_iterator_t</a> fti(pfn);</div>
<div class="line"><span class="keywordflow">for</span> ( <span class="keywordtype">bool</span> ok=fti.first(); ok; ok=fti.next() )</div>
<div class="line">  <span class="keyword">const</span> range_t &amp;a = fti.chunk();</div>
<div class="line">  ....</div>
</div><!-- fragment --><p>If the 'ea' parameter is used in the constructor, then the iterator is positioned at the chunk containing the specified 'ea'. Otherwise it is positioned at the function entry chunk. If 'pfn' is specified as NULL then the set() function will fail, but it is still possible to use the class. In this case the iteration will be limited by the segment boundaries. The function main chunk is locked during the iteration. It is also possible to enumerate one single arbitrary range using set_range() This function is mainly designed to be used from <a class="el" href="classfunc__item__iterator__t.html" title="Class to enumerate all function instructions and data sorted by addresses. ">func_item_iterator_t</a>. </p>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab7a494bfa18edb3e45552a292959fd47"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab7a494bfa18edb3e45552a292959fd47"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>func_tail_iterator_t</b> (<a class="el" href="classfunc__t.html">func_t</a> *_pfn, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea=<a class="el" href="pro_8h.html#a63a7c1cde5fb0cf0d0023d55c742dd4f">BADADDR</a>)</td></tr>
<tr class="separator:ab7a494bfa18edb3e45552a292959fd47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88c1c8a0a601cda0b4732bd77823dd98"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a88c1c8a0a601cda0b4732bd77823dd98"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (<a class="el" href="classfunc__t.html">func_t</a> *_pfn, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea=<a class="el" href="pro_8h.html#a63a7c1cde5fb0cf0d0023d55c742dd4f">BADADDR</a>)</td></tr>
<tr class="separator:a88c1c8a0a601cda0b4732bd77823dd98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a027a9594448bf9e22b175776efd8da7b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a027a9594448bf9e22b175776efd8da7b"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>set_ea</b> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea)</td></tr>
<tr class="separator:a027a9594448bf9e22b175776efd8da7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ecd932a94bbcbf4e6f8c92d5a5cbff6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0ecd932a94bbcbf4e6f8c92d5a5cbff6"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>set_range</b> (<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea1, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea2)</td></tr>
<tr class="separator:a0ecd932a94bbcbf4e6f8c92d5a5cbff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8052a519bf9de1e3012790e00230f4c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8052a519bf9de1e3012790e00230f4c8"></a>
const range_t &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>chunk</b> (void) const </td></tr>
<tr class="separator:a8052a519bf9de1e3012790e00230f4c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87102fb6779712dbae687930ab258a67"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a87102fb6779712dbae687930ab258a67"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>first</b> (void)</td></tr>
<tr class="separator:a87102fb6779712dbae687930ab258a67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1212e3aed3cb6c2690ab3a0fed2c0de2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1212e3aed3cb6c2690ab3a0fed2c0de2"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>last</b> (void)</td></tr>
<tr class="separator:a1212e3aed3cb6c2690ab3a0fed2c0de2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55c71fe8f6d4cece46974c2465261a77"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a55c71fe8f6d4cece46974c2465261a77"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>next</b> (void)</td></tr>
<tr class="separator:a55c71fe8f6d4cece46974c2465261a77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13983366a8cda5268e67cadc99745fde"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a13983366a8cda5268e67cadc99745fde"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>prev</b> (void)</td></tr>
<tr class="separator:a13983366a8cda5268e67cadc99745fde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16d7a874351f8e9b55acde54b4d07c1c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a16d7a874351f8e9b55acde54b4d07c1c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>main</b> (void)</td></tr>
<tr class="separator:a16d7a874351f8e9b55acde54b4d07c1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="funcs_8hpp.html">funcs.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>
